package com.taxi.driver.module.order.detail;

import com.taxi.driver.common.i.IBasePresenter;
import com.taxi.driver.common.i.IBaseView;
import com.taxi.driver.data.entity.OrderCostEntity;
import com.taxi.driver.module.vo.OrderVO;
import com.taxi.driver.module.vo.PassengerVO;
import com.taxi.driver.socket.SocketPushContent;

/**
 * 功能描述：
 */
public interface OrderDetailContract {

    interface View extends IBaseView<Presenter> {
//        void getCurrentCity(String city);

        //设置订单信息
        void setOrderInfo(OrderVO vo);

        //显示订单金额
        void showTotalFare(double totalFare);

        //弹窗确认"出发去接乘客"
        void showBeginConfirm();

        //"出发去接乘客"接口调用成功
        void orderBeginSuccess(String orderUuid);

        //弹窗确认"跳转代付"
        void showPayConfirm();

        //显示后台取消订单的弹窗
        void showCancelDialog(SocketPushContent push);

        //显示订单改派的弹窗
        void showReassignDialog(SocketPushContent push);

        //关闭对话框
        void closeDialog();

        void showReassignedDialog(String msg);
    }

    interface Presenter extends IBasePresenter {

        //设置当前订单编号
        void setOrderUuid(String orderUuid);

        //获取当前订单编号
        String getOrderUuid();

        //将mFirstSubscribe设置为false，以便首次获取订单详情时，优先从服务端获取
        void setOrderRefresh();

        //获取订单详情
        void reqOrderDetail(boolean isFromRemote);

        //出发去接乘客
        void reqOrderBegin();

        //获取乘客电话
        String getPassengerPhone();

        //获取乘客信息
        PassengerVO getPassengerVO();

        //保存金额
        void rushFare();

        //获取费用明细
        OrderCostEntity getOrderCostEntity();

        //司机类型
        int driverType();

        //检查是否可催款状态
        void checkPaystatus();
//        void getCurrentCity();
    }
}
